home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / DELPHI / CC32.ZIP / EDIT_SL.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-12-10  |  3.3 KB  |  135 lines

  1. { Component Create for Delphi }
  2. { Sample form for property editor - TStringList and TStrings object types }
  3.  
  4. unit Edit_sl;
  5.  
  6. interface
  7.  
  8. uses
  9.     WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,
  10.     StdCtrls, ExtCtrls, Dialogs, Menus, Clipbrd;
  11.  
  12. type
  13.   TStringListPropDlg = class(TForm)
  14.     OKBtn: TBitBtn;
  15.     CancelBtn: TBitBtn;
  16.     Memo1: TMemo;
  17.     OpenDialog: TOpenDialog;
  18.     SaveDialog: TSaveDialog;
  19.     EditDlgMenu: TMainMenu;
  20.     Edit1: TMenuItem;
  21.     Cut1: TMenuItem;
  22.     Copy1: TMenuItem;
  23.     Paste1: TMenuItem;
  24.     Selectall1: TMenuItem;
  25.     File1: TMenuItem;
  26.     Open1: TMenuItem;
  27.     Saveas1: TMenuItem;
  28.     N1: TMenuItem;
  29.     Exit1: TMenuItem;
  30.     procedure FormActivate(Sender: TObject);
  31.     procedure OKBtnClick(Sender: TObject);
  32.     procedure Open1Click(Sender: TObject);
  33.     procedure Saveas1Click(Sender: TObject);
  34.     procedure Exit1Click(Sender: TObject);
  35.     procedure Edit1Click(Sender: TObject);
  36.     procedure Cut1Click(Sender: TObject);
  37.     procedure Paste1Click(Sender: TObject);
  38.     procedure Selectall1Click(Sender: TObject);
  39.   private
  40.     { Private declarations }
  41.   public
  42.     { Public declarations }
  43.       { Transfer buffer for property's value }
  44.       Value : TStringList;
  45.   end;
  46.  
  47. var
  48.   StringListPropDlg: TStringListPropDlg;
  49.  
  50. implementation
  51.  
  52. {$R *.DFM}
  53.  
  54. procedure TStringListPropDlg.FormActivate(Sender: TObject);
  55. begin
  56.      Memo1.Lines.Clear;
  57.      Memo1.Lines.AddStrings(Value);
  58. end;
  59.  
  60. procedure TStringListPropDlg.OKBtnClick(Sender: TObject);
  61. begin
  62.      if Memo1.Modified then
  63.         begin
  64.         Value.Assign(Memo1.Lines)
  65.         end;
  66.      ModalResult := mrOK
  67. end;
  68.  
  69. procedure TStringListPropDlg.Open1Click(Sender: TObject);
  70. begin
  71.      if OpenDialog.Execute then
  72.         begin
  73.         Memo1.Lines.LoadFromFile(OpenDialog.FileName);
  74.         Memo1.Modified := True
  75.         end
  76. end;
  77.  
  78. procedure TStringListPropDlg.Saveas1Click(Sender: TObject);
  79. begin
  80.      if SaveDialog.Execute then
  81.         Memo1.Lines.SaveToFile(SaveDialog.FileName)
  82. end;
  83.  
  84. procedure TStringListPropDlg.Exit1Click(Sender: TObject);
  85. begin
  86.      if Memo1.Modified then
  87.         begin
  88.         Value.Assign(Memo1.Lines)
  89.         end;
  90.      ModalResult := mrOK
  91. end;
  92.  
  93. procedure TStringListPropDlg.Edit1Click(Sender: TObject);
  94. var
  95.    AnyTextSelected : Boolean;
  96. begin
  97.      if ActiveControl is TMemo then
  98.         { A memo is the active control }
  99.         begin
  100.         { Any text selected? }
  101.         AnyTextSelected :=
  102.               (ActiveControl as TMemo).SelLength > 0;
  103.         Cut1.Enabled := AnyTextSelected;
  104.         Copy1.Enabled := AnyTextSelected;
  105.         { Any text on the clipboard? }
  106.         Paste1.Enabled := Clipboard.HasFormat(CF_TEXT);
  107.         end
  108.      else
  109.          begin
  110.          Cut1.Enabled := False;
  111.          Copy1.Enabled := False;
  112.          Paste1.Enabled := False
  113.          end
  114. end;
  115.  
  116. procedure TStringListPropDlg.Paste1Click(Sender: TObject);
  117. begin
  118.      if ActiveControl is TMemo then
  119.         (ActiveControl as TMemo).PasteFromClipBoard
  120. end;
  121.  
  122. procedure TStringListPropDlg.Cut1Click(Sender: TObject);
  123. begin
  124.      if ActiveControl is TMemo then
  125.         (ActiveControl as TMemo).CutToClipBoard
  126. end;
  127.  
  128. procedure TStringListPropDlg.Selectall1Click(Sender: TObject);
  129. begin
  130.      ActiveControl := Memo1;
  131.      Memo1.SelectAll
  132. end;
  133.  
  134. end.
  135.